home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK2.toast / Development Kits (Disc 2) / ScriptX / Draggable ScriptX Folders / utils / c-api / sxextend.h < prev   
Encoding:
C/C++ Source or Header  |  1995-12-18  |  2.5 KB  |  78 lines  |  [TEXT/ttxt]

  1.  
  2. #include <stddef.h>
  3.  
  4. typedef long        SXint;
  5. typedef SXint        SXbool;
  6. typedef double        SXdouble;
  7. typedef    void *        SXobject;
  8.  
  9. extern SXobject    SXintToObject(SXint val);
  10. extern SXobject    SXdoubleToObject(SXdouble val);
  11. extern SXobject    SXmakeString(char *str);
  12.  
  13. extern SXint    SXintFrom(SXobject val);
  14. extern SXdouble    SXdoubleFrom(SXobject val);
  15. extern char*    SXstringOf(SXobject str);
  16.  
  17. extern SXobject    SXwriteString(SXobject stream, char *string);
  18.  
  19. extern void        SXthreadYield(void);
  20. extern void        SXthreadIdle(void);
  21.  
  22. extern SXobject trueObject;
  23. extern SXobject falseObject;
  24.  
  25. /**************************/
  26.  
  27. typedef    SXobject    SXclass;
  28. typedef char        SXchar;
  29. typedef short        SXshort;
  30.  
  31. extern SXobject generalError;
  32. extern SXobject SXempty;
  33. extern SXobject SXundefined;
  34. extern SXobject SXunsupplied;
  35. extern SXobject    SXextDebugStream(void);
  36.  
  37. #define debug     (SXextDebugStream())
  38.  
  39. extern SXobject    SXmakeNameInterned(char *str);
  40.  
  41. /**************************/
  42.  
  43. /*    Helper functions */
  44.  
  45. extern SXobject SXextMakeGlobal(char *moduleName, char *globalName, SXobject val);
  46. extern SXobject SXextMakeGeneric(char *moduleName, char *className, SXobject specializer, SXobject (*func)());
  47. extern SXobject SXextMakeFunction(char *moduleName, char *fnName,SXobject (*func)(), SXint minargs, SXint maxargs);
  48. extern SXobject SXextGetModule(char *moduleName);
  49. extern SXobject SXextGetGlobal(char *moduleName, char *globalName);
  50. extern SXobject SXextSetGlobal(char *moduleName, char *globalName, SXobject val);
  51. extern SXobject SXextGetIV(char *moduleName, SXobject obj, char *iv);
  52. extern SXobject SXextSetIV(char *moduleName, SXobject obj, char *iv, SXobject val);
  53. extern SXobject SXextCall(char *moduleName, char *generic, ... );
  54.  
  55. extern void SXextReadStream(SXobject strm, void *buffer, SXint length);
  56. extern void SXextWriteStream(SXobject strm, void *buffer, SXint length);
  57.  
  58. /*    Accessor functions for MemoryObject class */
  59.  
  60. #define        EXT_TYPE_SXCHAR            1
  61. #define        EXT_TYPE_SXSHORT        2
  62. #define        EXT_TYPE_SXINT            3
  63. #define        EXT_TYPE_SXDOUBLE        4
  64. #define        EXT_TYPE_SXN_CHAR        5
  65. #define        EXT_TYPE_SXCHAR_STAR    6
  66.  
  67. #define        EXT_SIZE(baseType)    (sizeof(baseType))
  68. #define        EXT_ELEMENT(sxname,sxtype,baseType,theField)    \
  69.                                 (sxname), ((SXint)(sxtype)), ((SXint)offsetof(baseType,theField))
  70.  
  71. extern SXobject SXextMakeMemoryObject(SXint size, ... );
  72. extern SXobject SXreadAt(SXobject extmem, void *buffer, SXint offset, SXint length);
  73. extern SXobject SXwriteAt(SXobject extmem, void *buffer, SXint offset, SXint length);
  74. extern SXint SXlockMem(SXobject extmem);
  75. extern SXint SXunlockMem(SXobject extmem);
  76. extern void     *SXdereference(SXobject extmem);
  77.  
  78.